function drawSpine(spineData, params, skin) { var spineObject = new PIXI.spine.Spine(spineData); AvWidth = spineObject.spineData.width; AvHeight = spineObject.spineData.height; var animationIndex = 0; if (params !== undefined && params !== null && params.animationIndex !== undefined) { animationIndex = params.animationIndex; } //var skinName = spineData.skins.length === 0 ? '' : spineData.skins[0].name; if (spineData.skins.length === 0) { var skinName = ''; } else if (skin != undefined) { var skinName = skin; } else if (spineData.skins.length > 0) { var skinName = spineData.skins[0].name; } var animationName = spineData.animations[animationIndex].name; // set current skin if (skinName !== '') spineObject.skeleton.setSkinByName(skinName); spineObject.skeleton.setSlotsToSetupPose(); // set the position if (params !== undefined && params !== null) { for (var key in params) { if (key !== 'container' && key !== 'tempContainer' && key !== 'animationIndex' && key !== 'animate' && key !== 'animateLoop' && key !== 'align' && key !== 'verticalAlign') { if (key === 'x') { if (params !== undefined && params !== null && params.align !== undefined && params.align === 'Left') { var x = params[key]; } else { var x = params[key] + AvWidth / 2; } spineObject['defaultX'] = x; spineObject[key] = spineObject['defaultX']; } else if (key === 'y') { if (params !== undefined && params !== null && params.verticalAlign !== undefined && params.verticalAlign === 'Top') { var y = params[key]; } else { var y = params[key] + AvHeight / 2; } spineObject[key] = y; } else if (key === 'scale') { spineObject.scale.set(params[key]); } else if (key === 'scaleX') { spineObject.scale.x = params[key]; } else { spineObject[key] = params[key]; } } } } var animateLoop = true; if (params !== undefined && params !== null && params.animateLoop !== undefined) { animateLoop = params.animateLoop; } // play animation if (params !== undefined && params !== null && params.animate !== undefined && !params.animate) { } else { spineObject.state.setAnimation(0, animationName, animateLoop); } var container = null; if (params !== undefined && params !== null && params.container !== undefined) { if (typeof params.container === "string") { container = gameContainer[params.container].container; } else { container = params.container; } } container.addChild(spineObject); //if (params !== undefined && params !== null && params.zOrder === undefined) { // spineObject.zOrder = 100; //} sortContainerChildren(container); return spineObject; } function sortContainerChildren(container) { container.children.sort(function (a, b) { a.zOrder = a.zOrder || 0; b.zOrder = b.zOrder || 0; return a.zOrder - b.zOrder }); };